if __name__ == '__main__':
n = int(input())
arr = list(map(int, input().split()))
dict_arr = {}
for i, e in enumerate(arr):
dict_arr[e] = i + 1
ni = int(input())
result1 = 0
result2 = 0
ni = list(map(int, input().split()))
for x in ni:
result1 += dict_arr[x]
result2 += n - dict_arr[x] + 1
print(result1, result2)
/*
___ _________ ___ ____
| | / / // \\ / \ | | / / // \\ | || | |
| | / / // \\ | ____ | | | / / // \\ | ||____| |
| |/ / //_____\\ | / \ | | |/ / //_____\\ | |_______|
| |\ \ //_______\\ | \____/ | | |\ \ //_______\\ | | ____ |
| | \ \ // \\ | | | | \ \ // \\ | || | |
| | \ \ // \\ \ __________/ | | \ \ // \\ | ||____| |
*/
#include<iostream>
#include <numeric>
#include<string>
#include<iostream>
#include<cmath>
#include<vector>
#include<map>
#include<algorithm>
#include<stack>
#include<queue>
#include<ostream>
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
#define fo(i,n) for (int i = 0; i < n; i++)
typedef vector<int> ve;
typedef vector<bool> vb;
typedef vector<ve> vee;
typedef long long ll;
typedef map<int, int> m;
ll GCD(ll a, ll b) { return (a) ? GCD(b % a, a) : b; }
ll LCM(ll a, ll b) { return a * b / GCD(a, b); }
#define all(a) (a).begin(), (a).end()
int dx[] = { -1,-1,-1,1,1,1 };
int dy[] = { -1, 0, 1,-1,0,1 };
int di[] = { 1,2,3,4,5,6 };
//const string pi = "314159265358979323846264338327";
//void ragner()
//{
// string n;
// cin >> n;
// int c = 0;
// fo(i, n.size())
// {
// if (pi[i] == n[i])
// c++;
// else break;
// }
// cout << c;
//
//}
//void ragner()
//{
// int n,s,r;
// cin >> n>>s>>r;
// int y = s - r;
// ve a(n, 0);
// a[n - 1] = y;
// while (r>0)
// {
// fo(i, n - 1)
// {
// if (r == 0)
// break;
// else {
// a[i]++;
// r--;
// }
// }
// }
// fo(i, n)
// {
// cout << a[i] << " ";
// }
//}
//void ragner()
//{
// int n;
// cin >> n;
// map<int, int>ma;
// vector<vector<int>> a(n,vector<int>(n-1));
// int f;
// fo(i, n)
// {
// fo(j, n - 1)
// {
// int x; cin >> x;
// a[i][j] = x;
// if (j == n - 2)
// {
// ma[x]++;
// if (ma[x] > 1)
// f = x;
// }
// }
// }
// fo(i, n)
// {
// if (a[i][n - 2] != f)
// {
// fo(j, n - 1)
// {
// cout << a[i][j] << " ";
// }
// cout << f;
// break;
// }
// }
//}
//void ragner()
//{
// int n;
// cin >> n;
// ve ar(n);
// ve v;
// map<int,int> a;
// fo(i, n)
// {
// cin >> ar[i];
// if (a[ar[i]] == 0)
// v.push_back(ar[i]);
// a[ar[i]]++;
// }
// sort(all(v));
// int c = 0;
// fo(i, v.size())
// {
// while (a[v[i]] > 0)
// {
// c++;
// a[v[i]]--;
// int y = v[i];
// while (a[++y] > 0)
// {
// a[y]--;
// }
//
// }
// }
// cout << c;
//}
//void ragner()
//{
// int x;
// cin >> x;
// if (x % 2 != 0) { cout << -1; return; }
// int a = x + (x / 2);
// int b = x / 2;
// if ((a ^ b) == x)
// {
// cout << a << " " << b;
// }
// else cout << -1;
//}
//int n;
//int ye(int i,ve a)
//{
// int u = 0;
// for (size_t j = i; j > 0 ; j--)
// {
// if (a[j] - a[j - 1] >= 0)
// u++;
// else break;
// }
// return u;
//}
//int sh(int i, ve a)
//{
// int u = 0;
// for (size_t j = i; j < n-1; j++)
// {
// if (a[j] - a[j + 1] >= 0)
// u++;
// else break;
// }
// return u;
//}
//void ragner()
//{
// cin >> n;
// ve a(n);
// fo(i, n) cin >> a[i];
// int c = 0;
// if (n == 1)
// {
// cout << 1;
// return ;
// }
// fo(i, n)
// {
// int y = 0;
// if (i == 0)
// {
// for (size_t j = i; j < n-1; j++)
// {
// if (a[j] - a[j + 1] >= 0)
// y++;
// else break;
// }
// y++;
// }
// else if (i == n - 1)
// {
// for (size_t j = i; j > 0; j--)
// {
// if (a[j] - a[j - 1] >= 0)
// y++;
// else break;
// }
// y++;
// }
// else
// {
// int yemen = ye(i,a);
// int shemal = sh(i,a);
// y = yemen + shemal;
// y++;
// }
// c = max(c, y);
// }
// cout << c;
//}
//void ragner()
//{
// int n; int k;
// cin >> n >> k;
// ve a(n+1);
// fo(i, n) cin >> a[i];
// int l = k - 1;
// int r = k + 1;
// int c = 0;
// if (a[k] == 1)
// c++;
// while (l > 0||r<=n)
// {
// if (l>0&&r<=n&&a[l] == a[r] && a[r] == 1)
// c+=2;
// if (l > 0 && r > n && a[l] == 1)
// c++;
// if (l <= 0 && r <= n && a[r] == 1)
// c++;
// l--;
// r++;
// }
// cout << c;
//}
//void ragner()
//{
// int n, m;
// cin >> n >> m;
// vector<pair<int, int>>a(m);
// fo(i, m)
// {
// int x, y;
// cin >> x>> y;
// a[i].first = y;
// a[i].second = x;
// }
// sort(all(a));
// int c = 0;
// for (int i = m-1; i >=0; i--)
// {
// if (n == 0) break;
// while(a[i].second!=0&&n!=0)
// {
// c += a[i].first;
// n--;
// a[i].second--;
// }
// }
// cout << c;
//}
//void ragner()
//{
// int a, b;
// cin >> a >> b;
// int c1 = 0;
// int c2 = 0;
// int c3 = 0;
// if (a == b)
// {
// cout << 0;
// return;
// }
// while (1)
// {
// if (a % 2 == 0)
// {
// c1++;
// a /= 2;
// }
// else if (a % 3 == 0)
// {
// c2++;
// a /= 3;
// }
// else if (a % 5 == 0)
// {
// c3++;
// a /= 5;
// }
// else break;
// }
// while (1)
// {
// if (b % 2 == 0)
// {
// c1--;
// b /= 2;
// }
// else if (b % 3 == 0)
// {
// c2--;
// b /= 3;
// }
// else if (b % 5 == 0)
// {
// c3--;
// b /= 5;
// }
// else break;
// }
// if (a != b) { cout << -1; return; }
// cout << abs(c1)+abs(c2)+abs(c3);
//}
//void ragner()
//{
// int n; cin >> n;
// ve a(n);
// fo(i, n) cin >> a[i];
// int dol = a[0];
// int en = 0;
// fo(i, n - 1)
// {
// if (a[i] - a[i + 1] >= 0)
// en += a[i] - a[i + 1];
// else if (en >= abs(a[i] - a[i + 1]))
// en += a[i] - a[i + 1];
// else
// {
// dol += abs(a[i] - a[i + 1]) - en;
// en = 0;
// }
// }
// cout << dol;
//}
//void ragner()
//{
// string s; cin >> s;
// if (s.size() == 1)
// {
// cout << 0;
// return;
// }
// int sum = 0;
// fo(i, s.size())
// sum += (s[i] - '0');
// string n = to_string(sum);
// int c = 1;
// while (n.size()!=1)
// {
// c++;
// sum = 0;
// fo(i, n.size())
// sum += (n[i] - '0');
// n = to_string(sum);
// }
// cout << c;
//}
//void dec(string &s, int n)
//{
// int o;
// if (n % 2 == 0)
// o = n / 2 - 1;
// else
// o= n / 2;
// cout << s[o];
// string h;
// int k = 0;
// fo(i, s.size())
// {
// if (i == o)
// continue;
// h+= s[i];
// }
// s = h;
//}
//void ragner()
//{
// int n;
// cin >> n;
// string s;
// string s2;
// cin >> s;
// if (n % 2 == 1)
// {
// fo(i, n)
// {
// if (i % 2 == 1)
// {
// s2 = s[i] + s2;
// }
// else s2+= s[i];
// }
// }
// else
// {
// fo(i, n)
// {
// if (i % 2 == 0)
// {
// s2 = s[i] + s2;
// }
// else s2 += s[i];
// }
// }
// cout << s2;
//}
//string s = "ROYGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIV";
//void ragner()
//{
// int n;
// cin >> n;
// fo(i, n)
// cout <<s[i];
//}
void ragner()
{
int n; cin >> n;
vector<ll> a(n+1);
fo(i, n)
{
ll x;
cin >> x;
a[x] = i;
}
ll m; cin >> m;
ll v = 0;
ll p = 0;
fo(i, m)
{
ll x;
cin >> x;
v += a[x] + 1;
p += abs(n - a[x]);
}
cout << v << " " << p;
}
int main()
{
int t = 1; //cin >> t;
while (t--)
{
ragner();
cout << endl;
}
return 0;
}
1632C - Strange Test | 673A - Bear and Game |
276A - Lunch Rush | 1205A - Almost Equal |
1020B - Badge | 1353A - Most Unstable Array |
770A - New Password | 1646B - Quality vs Quantity |
80A - Panoramix's Prediction | 1354B - Ternary String |
122B - Lucky Substring | 266B - Queue at the School |
1490A - Dense Array | 1650B - DIV + MOD |
1549B - Gregor and the Pawn Game | 553A - Kyoya and Colored Balls |
1364A - XXXXX | 1499B - Binary Removals |
1569C - Jury Meeting | 108A - Palindromic Times |
46A - Ball Game | 114A - Cifera |
776A - A Serial Killer | 25B - Phone numbers |
1633C - Kill the Monster | 1611A - Make Even |
1030B - Vasya and Cornfield | 1631A - Min Max Swap |
1296B - Food Buying | 133A - HQ9+ |